/*********************************************************************
* File: Properties.h
*
* \brief Provides properties management.
*********************************************************************/
#pragma once

#include <map>
#include <string>
using namespace std;

namespace util{
	/**
	* \brief A class to hold properties.
	*
	* \author Instituto Superior Tecnico de Lisboa, Portugal
	* \author Technical University of Lisbon, Portugal
	* 
	* \author Agentes Autonomos e Sistemas Multiagente
	* \author Autonomous Agents and Multiagent Systems
	* 
	* \version	1.0
	* \date		2006/2007
	**/
	class Properties{
	public:
		Properties(const char* file);

		string Properties::getProperty(const string key);

	private:
		struct ltstr
		{
			bool operator()(string s1, string s2) const
			{
				return s1.compare(s2) < 0;
			}
		};

		map<string, string, ltstr> _properties;
	};
}